package cn.iocoder.yudao.module.ride.controller.admin.extend.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 司机扩展分页 Request VO")
@Data
public class ExtendPageReqVO extends PageParam {

    @Schema(description = "关联 id")
    private Long driverId;

    @Schema(description = "手机运营商")
    private Integer mobileCarrier;

    @Schema(description = "公司标识")
    private String companyLogo;

    @Schema(description = "注册地行政区代码")
    private String districtCode;

    @Schema(description = "驾驶员出生日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] birthDate;

    @Schema(description = "国籍")
    private String nationality;

    @Schema(description = "驾驶员民族")
    private String ethnic;

    @Schema(description = "驾驶证编号")
    private String driverLicenseNo;

    @Schema(description = "婚姻")
    private Integer maritalStatus;

    @Schema(description = "外语能力")
    private String foreignLang;

    @Schema(description = "使用 APP 版本号")
    private String appVersion;

    @Schema(description = "使用地图类型")
    private String mapType;

    @Schema(description = "驾驶员学历")
    private Integer education;

    @Schema(description = "户口登记机关名称")
    private String householdReg;

    @Schema(description = "户口住址")
    private String householdAddr;

    @Schema(description = "现居住地址")
    private String currentAddr;

    @Schema(description = "驾驶员照片文件编号")
    private String driverPhotoNo;

    @Schema(description = "驾驶证扫描件文件编号")
    private String licenseScanNo;

    @Schema(description = "准驾车型")
    private String carType;

    @Schema(description = "初次领证日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] licenseFirstDate;

    @Schema(description = "驾驶证有效期限起")
    private LocalDateTime licenseValidStart;

    @Schema(description = "驾驶证有效期限止")
    private LocalDateTime licenseValidEnd;

    @Schema(description = "是否巡游出租车：1-是 0-否")
    private Integer isTaxiDriver;

    @Schema(description = "网约车驾驶员资格证号")
    private String taxiCertNo;

    @Schema(description = "资格证发证机构")
    private String taxiCertOrg;

    @Schema(description = "资格证发证日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] taxiCertDate;

    @Schema(description = "初次领取资格证日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] taxiCertFirstDate;

    @Schema(description = "资格证有效起")
    private LocalDateTime taxiCertValidStart;

    @Schema(description = "资格证有效止")
    private LocalDateTime taxiCertValidEnd;

    @Schema(description = "报备日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] reportDate;

    @Schema(description = "是否专职")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Integer[] isFullTime;

    @Schema(description = "是否在黑名单")
    private Integer inBlacklist;

    @Schema(description = "服务类型")
    private Integer serviceType;

    @Schema(description = "合同签署公司")
    private String contractCompany;

    @Schema(description = "紧急联系人")
    private String emergencyContact;

    @Schema(description = "紧急联系人电话")
    private String emergencyPhone;

    @Schema(description = "紧急联系人通信地址")
    private String emergencyAddr;

}